(a) Orientation—Printmasks are used to determine the pass number in which a halftone dot is formed by an inkjet on the paper. Modern inkjet printers have the capability to detect defective printing elements on-line. In order to compensate for the defective element the printmask has to be redesigned, or at least modified. (The phrase “printing element” encompasses inkjet nozzles and any of various other kinds of primal mark-forming units in the different kinds of printing systems.)
Currently applied methods either redesign a printmask on-line, or not redesign the printmask but just replace the defective printing element with a predetermined backup element. Those methods compromise the quality of the printmask, either globally (in the former), or locally.
The last stage of the inkjet printing pipeline consists of determining the pass number in which inkdrops allocated by the halftoning stage will be laid on the paper. The goal is, usually, to make sure that neighboring dots are laid as distant on the time axis, as is made possible by the number of passes allocated to the print-mode.
One reason for this time separation is that nearby liquid inkdrops might coalesce, thereby creating pigment density fluctuations on the paper. If, on the other hand, by the time a dot is laid all its previously laid neighbors are already dry, no coalescence occurs.
The pass-number allocation is technically achieved using an integer matrix of pass numbers, called printmask, which is placed in a periodically repetitive manner on the halftone pattern. This way, every halftone location corresponds to a pass number from the printmask. An inkdrop, if allocated by the halftoning stage, is laid at the corresponding pass number.
Modern inkjet printers have on-line printing-element condition- or status-checking capabilities. Having detected a defective element, a printer should relieve it from part of its duties, or simply stop using it at all. Exactly what condition of a printing element constitutes “defective” or “bad” depends generally on certain criteria, which, for example, may be defined by a design engineer or predefined in the system. A defective element—e.g. inkjet nozzle—may also be classified as “nozzle out,” “weak nozzle,” or “misdirected nozzle.”
All this may be done by redesigning or modifying the printmask. A printmask is generally a mapping between pass numbers and dots, i.e. the mask specifies which dots will print in which passes.
Another relationship further exists, because for every line in the printmask, there is a relationship between pass numbers and nozzles. Thus, forbidding use of a certain nozzle can be achieved by prohibiting predetermined pass numbers in certain rows (lines) of the printmask. Pass numbers map in a line-dependent manner to nozzles.
The problem of compensating for damaged printing elements is thus transformed to a problem of designing new printmasks with the appropriate constraints. Since the number of elements is too large to save a different printmask optimized for the possibility that each certain element may be damaged, the design has to be performed on-line in the printer.
Printmask patterns are carefully designed to use the tradeoff between various technical and print-quality requirements, the optimization of which is complicated and may take a substantial amount of time for some uses and application, and particularly as an on-line routine. Nevertheless, fast alternatives with reasonably good quality have been used.
Three methods in use are the following.
1. Handmade masks—These allow a very good control of where each drop is placed, and also help with considering interactions between printheads in an easy way. The main drawback of handmade masks comes from the fact that they are very small, therefore tending to produce banding or regular patterns.
They also do not allow good management of printing-element usage. Any error-hiding policy that is attempted here requires some amount of hardcoded mask replacement.
2. Redesign—A new printmask is designed automatically on-line. The time and hardware constraints dictate a suboptimal design, which reduces the overall quality of the printmask. Furthermore, this method is limited to printers with enough computation power to support it, and might require a noticeable time duration to be performed.
In this method the burden of the damaged printing element is partitioned equally between the available elements. Although this method generally provides the best image quality, it is computation intensive.
3. Backup Nozzle—Every printing element has a predefined backup element. When an element is damaged, its backup is activated. The printmask does not change, only the element which will fire—related to the pass number—changes. Although this procedure requires no significant computation, it has its drawbacks.
Thus, at the lines where the damaged element was not employed, the print quality is not altered. At the damaged-element locations, however, the application of a backup element results usually in poor quality. This may be due to breaches of printmask design requirements.
In many or most cases, the two-times normal loading on the healthy (but, after all, not really new) element accelerates its aging and deterioration. Reassignment of its double-overload tasks to yet another element may also soon be required in this method, leading to triple overload of that backup unit. Thus, the double or more duty of the backup printing element might shorten its life span. Plainly the ill effects can cascade into an avalanche of printing-element failure, shortly disabling the entire printhead.
(b) Automated and semiautomated generation of printmasks—Joan Manel Garcia-Reyero, in U.S. utility-patent application Ser. Nos. 09/150,321 through '323, has introduced a basic advance in printmask generation. His system and method express all needed considerations for use in preparing a mask—and test criteria as well—in a generalized form and accordingly are able to produce at each attempt a usable mask of high quality. He devised a powerful conceptual construct within which to generate randomized masks for very large photograph-like images automatically.
In some circumstances, however, the Garcia approach in its purest form is subject to undesired limitations such as excessive time consumption for use in the field. It is accordingly susceptible to refinement for mitigation of these limitations.
Because Garcia's invention in particular addresses issues of controlling the randomness (or granularity) of printmasks and resulting images, he dubbed it “Shakes.” For brevity and convenience, this document too will refer to his invention by that nickname.
Nozzle (or more generally printing-element) weighting is a technique described in Joan Manel Garcia-Reyero's document about Shakes, consisting of specifying a certain percentage of usage per nozzle. That is, a single nozzle will not only be used or not, but the number of times it will appear in a mask description can be specified.
The interesting thing is that this nozzle weighting is also dependent on the printhead status in a given moment. Algorithms to determine this weighting have also been disclosed.
It was later discovered that they could easily support Variable Paper Advance Printmodes, Pass-Dependent Nozzle Weighting and Multilevel Printing. They also provide an easy way to install printmodes into the printer, even through the Internet. Nozzle weighting also supports drop-sequence control to avoid hue shift in bidirectional printing.
(c) Classical Shakes with Nozzle Weighting—Shakes is a tool that automatically generates fuzzy masks, given a set of rules determined by the engineer who is designing the masks. Therefore, the designer must “explain” to Shakes how he or she wants the mask, and let it do it. Fuzzy masks are masks with a certain degree of randomness.
The main advantage is that masks can be generated that are far larger than handmade ones, and noisy enough to build banding robustness, but regular enough to avoid excessive granularity. Nozzle weighting is much easier now, but it still requires a significant number of CPU cycles.
The Shakes process allows Nozzle Weighting in two senses. One Nozzle-Weighting process is what is called “List.” This was already implemented inside a product (Shakesmall), but there was a very poor correlation between the input weight and the actual nozzle usage.
The other Nozzle-Weighting option offered by Shakes is called “NozzDist.” It requires two rounds of calculation for a given mask, the second round being much slower than the first one. This option was discarded for Shake-small because the throughput hit was unacceptable.
Another particularly beneficial property of the Shakes techniques is that they attack not only the first-generation problem of failed printing elements but also the second and third waves of failure generated by the simple-reassignment (backup) technique discussed above.
When an element is found to be malfunctioning, Shakes and its popup variant refrain from passing element-task overloads from one victim to the next, instead they recompute the overall allocation of printing burden for the entire reduced population of elements. In doing so they also take into account the type and severity of malfunction.
This total-redesign approach can work very well, redistributing the printing burden very equitably and carefully among all the working elements while observing all the best constraints for avoiding ink coalescence and other image-quality defects. It is, however, burdened by the high overhead mentioned above. A way to shorten this redesign process when further degradation of printing elements is found is thus highly desirable.
Constraints—A constraint is any design criterion that a mask is expected to satisfy. It includes spatial or so-called “pixel-grid” constraints, and pen-usage constraints such as firing-frequency constraints. Constraints can be applied within a single plane of a mask, between planes, or between different masks (for example, to make certain that yellow will not print in the same pass as cyan). There are generally two main types of constraints.                A. Neighborhood constraints—These are spatial constraints that define restrictions on the placement of dots with respect to a pivotal point (a central point in a constraint diagram as will be further discussed below), as a function of their relative position or so-called “distance,” or both.        B. Pen-usage constraints—This type of constraint specifies restrictions in the way the nozzles of the pen are used.        
Two types of nozzle constraint are discussed here:    Nozzle-usage acceptance defines the level of acceptability of a given nozzle. Acceptability of “zero” means forbidden, acceptability of “one” means accepted without restriction. Any number in the closed range [1,0] is allowed.    Nozzle-usage distribution defines an expected or intended distribution of the nozzles. Here a “one” still means unlimited usage and a zero means forbidden, but the values within the range are specific fractions of use, or duty cycle, desired.As an example of the difference between these two kinds of constraint, if 0.1 is specified as the usage acceptance of a particular nozzle, that nozzle is acceptable to use but only if there is no better option. If 0.1 is specified as the usage distribution of a particular nozzle, then when printing with the fully created mask this nozzle is expected to be used exactly ten percent of the time it would have been used normally—i.e. in a conventional system.
(d) Improvements in Automated and Semiautomated Printmask Generation for Incremental Printing—Joan Manel Garcia-Reyero, in U.S. Pat. No. 6,443,556, has introduced an improvement of the Shakes system discussed above.
Precooked Masks—Prior solutions in the field using the redesign method generally involve periodically checking the health or status of the nozzles, and when the changes are significant enough, to redesign the printmask. The use of precooked masks is one way of shortening the computation time in redesigning printmasks.
Precooked masks are generated by a new version of Shakes. A precooked mask is a three-dimensional matrix. One might think of it as a stack of matrices. It is better thought of as a matrix of stacks. That is, for every single location on the paper, a full range of candidates is offered.
In general, a matrix of corresponding backup entries or of stacks of backup entries for values in the printmask is determined. Individual values in the printmask which are nonfunctional are also determined. Nonfunctional values in the printmask are exclusively replaced by corresponding backup entries from the matrix.
When the printer needs to print, the precooked mask is retrieved or generated, and then the reheating process begins. The reheating process basically consists of picking, for each print level, a candidate from the list. Although, by default, the first-level mask will pick the best candidate, the second-level mask will pick the second best candidate and so on.
In order to implement Nozzle Weighting, however, the best possible candidate is picked with a probability that is proportional to the nozzle weight. That is, if nozzle weight is six hundred (600), this nozzle will be picked in 60% of the cases. In the remaining 40% of the cases, the next candidate in the list will be evaluated for that position, and the rejected nozzle is moved to the lowest rank of the list, just in case it can help filling up higher levels of the mask.
Although time has been shortened by using precooked masks, the computational resources required to rebuild some printmasks still make it very difficult to maintain the required throughput when pens or printheads are large, e.g. five hundred twelve (512) nozzles. The time needed to regenerate a printmask is proportional to the number of nozzles in the pen and to the size (height, width, and number of passes) of the printmask.
This means that the computation for an 8,448-nozzle pen using an algorithm designed to work with a 512-nozzle pen is increased by a time factor of sixteen and a half (16.5). This could mean roughly fifty minutes to recalculate the printmask in a printer with large pens, when the goal is on the order of seconds.
With Shakes and precooked masks, a new set of masks is generated when malfunctioning nozzles are detected. This generation as explained above is generally time consuming.
A way to have masks generated and be used immediately is thus highly desirable. As suggested earlier, all the foregoing discussion is equally applicable to weighting, usage, etc. of printing elements other than nozzles.
(e) Streamlined Real-Time Printmask Revision—Other recent advances in printmask generation, particularly for multitask printers, are presented in the earlier-mentioned Kumar and Vilanova patent documents. In multitask machines, serving different markets simultaneously, ink usage is often heavy and therefore printing-element degradation is fast and erratic. Neither of these innovations is based on the Shakes systems.
The elegant procedures taught in these documents generally involve revising a plural-pass printmask when one or more malfunctioning printing elements have been identified. This procedure analyzes actual mask entries already established—that is, specific numbers in specific mask rows associated with the malfunctioning elements—and simply rearranges the existing entries.
In this way the functionality or duty of the malfunctioning printing element is displaced from one printing pass (where it would require use of a printing element known to be malfunctioning) to another pass (for which an implicated printing element is in good condition).
In general, Kumar's and Vilanova's processes modify the entry related to the pixel or dot location handled by the malfunctioning or misbehaving element—and the entry related to the dot location handled by the element which will take the place of the malfunctioning element. This means that at least two rows within the mask are modified.
Vilanova undertakes to avoid the simple-reassignment problem of overloading elements that receive reassignments from failed elements—but also in a sense undertakes a far more modest task than the total-redesign approach. His task is limited to inserting (or poking) new nozzle assignments into the overall or at least nearby load-distribution pattern, but without reworking the entire mask. This means, however, that mask constraints as originally desired by the designer may be ignored and totally breached.
Also, his system handles quickly the masking requirements for many different kinds of projects, but most generally smaller-format images and at somewhat lower range of image-quality demands—particularly a multitask printing system in which malfunction or function of each printing element is not at all stable but rather is transitory and indeed erratic. The Vilanova document also presents a methodology for storing and tracking changes in printing-element condition, in multielement printers.
(f) Conclusion—Thus failure to effectively address the difficult constraints of printmask generation by automated and semiautomated procedures has continued to impede achievement of uniformly excellent inkjet printing. Thus, important aspects of the technology used in the field of the invention remain amenable to useful refinement.